class Solution {
public:
    /**
     * 
     * @param numbers int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& numbers, int target) {
        // write code here
        vector<int>ans;
        unordered_map<int, int> hash;
        hash[numbers[0]]=0; //key存元素值,value存下标
        for(int i=1;i<numbers.size();i++)
        { //如果目标值-当前值的结果没有在哈希表中，就把当前值放入哈希表中
            if(hash.find(target-numbers[i])==hash.end())
            {
                hash[numbers[i]]=i;
            }else{//如果目标值-当前值的结果在哈希表，说明当前元素和哈希表中的某个元素相加=目标值
                ans.push_back(i+1);
                ans.push_back(hash[target-numbers[i]]+1);
                sort(ans.begin(), ans.end());
                break;
            }
        }
        return ans;
        
    }
};